try to do macos latest#692
Conversation
📝 WalkthroughWalkthroughThe pull request introduces updates to the GitHub Actions workflows in two files: Changes
Possibly related PRs
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (2)
🔇 Additional comments (3).github/workflows/analyzers.yml (1)
The addition of explicit Qt version "6.2.*" across both jobs ensures build reproducibility and consistency with other workflow files. Also applies to: 106-106 .github/workflows/ci v2.yml (2)
The Qt version "6.2.*" is consistently specified across all jobs, ensuring build reproducibility and matching the version in analyzers.yml. Also applies to: 104-104, 183-183, 264-264
The change from Also applies to: 142-142 ✅ Verification successfulLet me try a different approach to verify the macOS compatibility by checking the workflow file content and recent changes. Let me check the build requirements and dependencies to ensure compatibility with macOS. Let me try one final check to verify the build configuration and dependencies. Based on the gathered information, I can now provide the final response: Using macos-latest is safe for this workflow The change from
🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Description: Check the current macOS version on the latest runner and recent workflow runs
# Get current macOS version on latest runner
echo "Current macOS version on latest runner:"
sw_vers 2>/dev/null || echo "Command not available in current context"
# Check recent workflow runs for any macOS-related failures
gh run list --workflow="ci v2.yml" --limit 10 --json conclusion,name | \
jq '.[] | select(.name | contains("macos")) | {name: .name, conclusion: .conclusion}'
Length of output: 348 Script: #!/bin/bash
# Check the workflow file content and recent changes related to macOS
echo "Current macOS configuration in workflow:"
rg "macos-" .github/workflows/ci\ v2.yml -A 1 -B 1
echo -e "\nRecent changes to macOS configuration:"
git log -p --grep="macos" -- ".github/workflows/ci v2.yml" | head -n 20
echo -e "\nCheck if there are any specific macOS dependencies or requirements:"
rg "macos|darwin" -i --type yaml .github/workflows/
Length of output: 948 Script: #!/bin/bash
# Check build requirements and dependencies
echo "Checking build requirements:"
fd "CMakeLists.txt|requirements.txt|package.json|*.cmake" --type f --exec head -n 50 {}
echo -e "\nChecking for platform-specific code or requirements:"
rg "if.*darwin|if.*apple|APPLE|DARWIN" --type cmake
rg "process.platform.*darwin|process.platform.*mac" --type js
echo -e "\nChecking CI workflow steps for macOS:"
rg "if: runner.os == 'macOS'|if: matrix.os == 'macos'" .github/workflows/
Length of output: 1453 Script: #!/bin/bash
# Check CMake and build configuration
echo "Checking CMake configuration:"
fd -e cmake -e txt --type f -x grep -l "APPLE\|DARWIN\|MAC" {} \; -exec head -n 50 {}
echo -e "\nChecking workflow steps and dependencies:"
cat .github/workflows/ci\ v2.yml | grep -A 5 -B 5 "macos-"
echo -e "\nChecking if there are any macOS-specific setup steps:"
rg "setup-" .github/workflows/ci\ v2.yml -A 2 -B 2
Length of output: 1963 Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
BENCHMARK RESULTS (AUTOGENERATED)
|
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| Subscribe empty callbacks to empty observable | 299.64 ns | 1.85 ns | 1.87 ns | 0.99 | 1.85 ns |
| Subscribe empty callbacks to empty observable via pipe operator | 302.46 ns | 1.85 ns | 1.85 ns | 1.00 | 1.85 ns |
Sources
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| from array of 1 - create + subscribe + immediate | 683.11 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| from array of 1 - create + subscribe + current_thread | 1028.35 ns | 3.42 ns | 3.42 ns | 1.00 | 3.71 ns |
| concat_as_source of just(1 immediate) create + subscribe | 2238.68 ns | 113.77 ns | 114.49 ns | 0.99 | 121.63 ns |
| defer from array of 1 - defer + create + subscribe + immediate | 718.95 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| interval - interval + take(3) + subscribe + immediate | 2115.29 ns | 59.19 ns | 59.39 ns | 1.00 | 59.23 ns |
| interval - interval + take(3) + subscribe + current_thread | 3010.37 ns | 32.46 ns | 32.44 ns | 1.00 | 33.95 ns |
| from array of 1 - create + as_blocking + subscribe + new_thread | 31266.38 ns | 29377.86 ns | 28224.48 ns | 1.04 | 28782.45 ns |
| from array of 1000 - create + as_blocking + subscribe + new_thread | 42562.73 ns | 52708.70 ns | 52435.10 ns | 1.01 | 52539.60 ns |
| concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe | 3534.65 ns | 140.59 ns | 135.54 ns | 1.04 | 152.04 ns |
Filtering Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take(1)+subscribe | 1082.96 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+filter(true)+subscribe | 850.85 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,2)+skip(1)+subscribe | 986.15 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,1,2)+distinct_until_changed()+subscribe | 879.24 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,2)+first()+subscribe | 1246.08 ns | 0.31 ns | 0.32 ns | 0.98 | 0.31 ns |
| immediate_just(1,2)+last()+subscribe | 901.56 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+take_last(1)+subscribe | 1159.75 ns | 17.91 ns | 24.38 ns | 0.73 | 19.15 ns |
| immediate_just(1,2,3)+element_at(1)+subscribe | 856.19 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Schedulers
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate scheduler create worker + schedule | 271.93 ns | 1.54 ns | 1.54 ns | 1.00 | 1.54 ns |
| current_thread scheduler create worker + schedule | 373.23 ns | 4.94 ns | 4.94 ns | 1.00 | 4.32 ns |
| current_thread scheduler create worker + schedule + recursive schedule | 808.32 ns | 62.21 ns | 60.75 ns | 1.02 | 60.82 ns |
Transforming Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+map(v*2)+subscribe | 870.08 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+scan(10, std::plus)+subscribe | 895.73 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+flat_map(immediate_just(v*2))+subscribe | 2354.63 ns | 149.17 ns | 138.50 ns | 1.08 | 174.85 ns |
| immediate_just+buffer(2)+subscribe | 1503.18 ns | 13.59 ns | 13.89 ns | 0.98 | 18.22 ns |
| immediate_just+window(2)+subscribe + subscsribe inner | 2374.74 ns | 1357.03 ns | 1289.64 ns | 1.05 | 1340.10 ns |
Conditional Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take_while(false)+subscribe | 845.14 ns | - | - | 0.00 | - |
| immediate_just+take_while(true)+subscribe | 861.95 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Utility Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(1)+subscribe_on(immediate)+subscribe | 1991.01 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Combining Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe | 3387.99 ns | 136.23 ns | 147.17 ns | 0.93 | 174.56 ns |
| immediate_just(1) + merge_with(immediate_just(2)) + subscribe | 3690.54 ns | 156.72 ns | 159.89 ns | 0.98 | 164.60 ns |
| immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe | - | 129.74 ns | 131.97 ns | 0.98 | 153.98 ns |
| immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe | 3515.37 ns | 406.29 ns | 355.88 ns | 1.14 | 404.18 ns |
| immediate_just(1) + zip(immediate_just(2)) + subscribe | 2133.83 ns | 213.66 ns | 212.95 ns | 1.00 | 212.41 ns |
| immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe | 3105.22 ns | 229.66 ns | 236.87 ns | 0.97 | 253.05 ns |
Subjects
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| publish_subject with 1 observer - on_next | 34.48 ns | 35.41 ns | 14.79 ns | 2.40 | 15.64 ns |
| subscribe 100 observers to publish_subject | 200024.40 ns | 15738.13 ns | 16014.13 ns | 0.98 | 18030.50 ns |
| 100 on_next to 100 observers to publish_subject | 27039.38 ns | 17635.24 ns | 17179.79 ns | 1.03 | 19492.40 ns |
Scenarios
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| basic sample | 1424.74 ns | 13.28 ns | 13.27 ns | 1.00 | 25.28 ns |
| basic sample with immediate scheduler | 1398.87 ns | 5.55 ns | 5.55 ns | 1.00 | 19.14 ns |
| mix operators with disposables and without disposables | 6344.25 ns | 1398.29 ns | 1380.10 ns | 1.01 | 1857.81 ns |
| single disposable and looooooong indentity chain | 23716.69 ns | 1006.72 ns | 990.07 ns | 1.02 | 5131.80 ns |
Aggregating Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+reduce(10, std::plus)+subscribe | 911.55 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Error Handling Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe | 2047.17 ns | 982.96 ns | 1013.02 ns | 0.97 | 997.25 ns |
| create(on_error())+retry(1)+subscribe | 582.65 ns | 109.92 ns | 109.92 ns | 1.00 | 113.65 ns |
ci-macos
General
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| Subscribe empty callbacks to empty observable | 425.30 ns | 1.04 ns | 0.70 ns | 1.48 | 1.00 ns |
| Subscribe empty callbacks to empty observable via pipe operator | 391.73 ns | 0.99 ns | 0.70 ns | 1.42 | 0.97 ns |
Sources
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| from array of 1 - create + subscribe + immediate | 760.16 ns | 0.34 ns | 0.23 ns | 1.47 | 0.35 ns |
| from array of 1 - create + subscribe + current_thread | 1013.48 ns | 4.66 ns | 31.62 ns | 0.15 | 4.23 ns |
| concat_as_source of just(1 immediate) create + subscribe | 2326.70 ns | 181.17 ns | 315.33 ns | 0.57 | 177.65 ns |
| defer from array of 1 - defer + create + subscribe + immediate | 796.34 ns | 0.34 ns | 0.23 ns | 1.43 | 0.34 ns |
| interval - interval + take(3) + subscribe + immediate | 2073.23 ns | 54.77 ns | 114.76 ns | 0.48 | 56.11 ns |
| interval - interval + take(3) + subscribe + current_thread | 2540.75 ns | 31.52 ns | 95.94 ns | 0.33 | 32.87 ns |
| from array of 1 - create + as_blocking + subscribe + new_thread | 26196.29 ns | 24401.50 ns | 81457.31 ns | 0.30 | 138479.00 ns |
| from array of 1000 - create + as_blocking + subscribe + new_thread | 31002.68 ns | 33461.61 ns | 88639.18 ns | 0.38 | 29445.83 ns |
| concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe | 3206.84 ns | 196.89 ns | 365.93 ns | 0.54 | 196.85 ns |
Filtering Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take(1)+subscribe | 1146.66 ns | 0.33 ns | 0.24 ns | 1.39 | 0.34 ns |
| immediate_just+filter(true)+subscribe | 849.69 ns | 0.33 ns | 0.23 ns | 1.43 | 0.38 ns |
| immediate_just(1,2)+skip(1)+subscribe | 1106.63 ns | 0.33 ns | 0.23 ns | 1.43 | 0.34 ns |
| immediate_just(1,1,2)+distinct_until_changed()+subscribe | 866.26 ns | 0.34 ns | 0.47 ns | 0.72 | 0.34 ns |
| immediate_just(1,2)+first()+subscribe | 1375.05 ns | 0.33 ns | 0.23 ns | 1.43 | 0.34 ns |
| immediate_just(1,2)+last()+subscribe | 1017.00 ns | 0.57 ns | 0.24 ns | 2.37 | 1.01 ns |
| immediate_just+take_last(1)+subscribe | 1199.78 ns | 0.33 ns | 0.23 ns | 1.43 | 0.34 ns |
| immediate_just(1,2,3)+element_at(1)+subscribe | 858.42 ns | 0.34 ns | 0.23 ns | 1.43 | 0.34 ns |
Schedulers
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate scheduler create worker + schedule | 314.61 ns | 1.08 ns | 0.93 ns | 1.15 | 1.01 ns |
| current_thread scheduler create worker + schedule | 530.61 ns | 4.41 ns | 32.34 ns | 0.14 | 11.72 ns |
| current_thread scheduler create worker + schedule + recursive schedule | 749.54 ns | 67.34 ns | 199.81 ns | 0.34 | 68.41 ns |
Transforming Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+map(v*2)+subscribe | 852.04 ns | 2.60 ns | 4.20 ns | 0.62 | 2.77 ns |
| immediate_just+scan(10, std::plus)+subscribe | 987.93 ns | 0.34 ns | 0.47 ns | 0.72 | 0.36 ns |
| immediate_just+flat_map(immediate_just(v*2))+subscribe | 2105.74 ns | 206.59 ns | 375.66 ns | 0.55 | 217.06 ns |
| immediate_just+buffer(2)+subscribe | 1009.63 ns | 16.48 ns | 63.19 ns | 0.26 | 17.97 ns |
| immediate_just+window(2)+subscribe + subscsribe inner | 1990.57 ns | 1064.96 ns | 2399.26 ns | 0.44 | 1136.75 ns |
Conditional Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take_while(false)+subscribe | 835.99 ns | - | - | 0.00 | - |
| immediate_just+take_while(true)+subscribe | 851.10 ns | 0.34 ns | 0.23 ns | 1.43 | 0.41 ns |
Utility Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(1)+subscribe_on(immediate)+subscribe | 1930.34 ns | 2.17 ns | 4.91 ns | 0.44 | 1.78 ns |
Combining Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe | 2952.67 ns | 215.60 ns | 420.19 ns | 0.51 | 224.23 ns |
| immediate_just(1) + merge_with(immediate_just(2)) + subscribe | 3255.65 ns | 214.05 ns | 411.06 ns | 0.52 | 223.97 ns |
| immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe | - | 217.88 ns | 452.01 ns | 0.48 | 224.08 ns |
| immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe | 3106.44 ns | 536.30 ns | 929.76 ns | 0.58 | 550.13 ns |
| immediate_just(1) + zip(immediate_just(2)) + subscribe | 2104.40 ns | 350.38 ns | 830.56 ns | 0.42 | 367.23 ns |
| immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe | 2996.48 ns | 344.41 ns | 647.10 ns | 0.53 | 359.10 ns |
Subjects
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| publish_subject with 1 observer - on_next | 44.29 ns | 20.09 ns | 49.32 ns | 0.41 | 22.42 ns |
| subscribe 100 observers to publish_subject | 137682.25 ns | 16451.61 ns | 41087.04 ns | 0.40 | 16921.57 ns |
| 100 on_next to 100 observers to publish_subject | 34001.32 ns | 14787.56 ns | 20892.27 ns | 0.71 | 21811.51 ns |
Scenarios
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| basic sample | 1284.11 ns | 12.37 ns | 68.76 ns | 0.18 | 27.39 ns |
| basic sample with immediate scheduler | 1258.22 ns | 5.40 ns | 18.74 ns | 0.29 | 14.11 ns |
| mix operators with disposables and without disposables | 12444.77 ns | 1529.56 ns | 3292.46 ns | 0.46 | 1810.51 ns |
| single disposable and looooooong indentity chain | 30784.92 ns | 3016.51 ns | 1621.74 ns | 1.86 | 4483.24 ns |
Aggregating Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+reduce(10, std::plus)+subscribe | 1009.58 ns | 0.33 ns | 0.23 ns | 1.43 | 0.35 ns |
Error Handling Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe | 3560.12 ns | 2714.04 ns | 4163.59 ns | 0.65 | 3406.64 ns |
| create(on_error())+retry(1)+subscribe | 720.85 ns | 179.05 ns | 277.73 ns | 0.64 | 195.25 ns |
ci-ubuntu-clang
General
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| Subscribe empty callbacks to empty observable | 273.26 ns | 0.64 ns | 0.63 ns | 1.01 | 0.63 ns |
| Subscribe empty callbacks to empty observable via pipe operator | 274.65 ns | 0.63 ns | 0.63 ns | 1.00 | 0.63 ns |
Sources
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| from array of 1 - create + subscribe + immediate | 563.37 ns | 0.31 ns | 0.31 ns | 1.01 | 0.31 ns |
| from array of 1 - create + subscribe + current_thread | 773.29 ns | 4.01 ns | 4.01 ns | 1.00 | 4.02 ns |
| concat_as_source of just(1 immediate) create + subscribe | 2344.04 ns | 135.30 ns | 128.32 ns | 1.05 | 135.64 ns |
| defer from array of 1 - defer + create + subscribe + immediate | 773.49 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| interval - interval + take(3) + subscribe + immediate | 2215.14 ns | 58.31 ns | 58.26 ns | 1.00 | 58.31 ns |
| interval - interval + take(3) + subscribe + current_thread | 3200.52 ns | 30.86 ns | 30.86 ns | 1.00 | 31.50 ns |
| from array of 1 - create + as_blocking + subscribe + new_thread | 30276.60 ns | 28008.46 ns | 27977.50 ns | 1.00 | 30779.23 ns |
| from array of 1000 - create + as_blocking + subscribe + new_thread | 36162.61 ns | 32814.23 ns | 33816.21 ns | 0.97 | 36547.56 ns |
| concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe | 3666.39 ns | 146.59 ns | 146.78 ns | 1.00 | 146.75 ns |
Filtering Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take(1)+subscribe | 1169.42 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+filter(true)+subscribe | 838.87 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,2)+skip(1)+subscribe | 1078.13 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,1,2)+distinct_until_changed()+subscribe | 868.73 ns | 0.62 ns | 0.62 ns | 1.00 | 0.31 ns |
| immediate_just(1,2)+first()+subscribe | 1356.03 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,2)+last()+subscribe | 990.40 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+take_last(1)+subscribe | 1176.93 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just(1,2,3)+element_at(1)+subscribe | 856.98 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Schedulers
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate scheduler create worker + schedule | 279.76 ns | 1.54 ns | 1.54 ns | 1.00 | 1.54 ns |
| current_thread scheduler create worker + schedule | 401.58 ns | 4.01 ns | 4.02 ns | 1.00 | 4.02 ns |
| current_thread scheduler create worker + schedule + recursive schedule | 847.18 ns | 54.91 ns | 55.00 ns | 1.00 | 55.18 ns |
Transforming Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+map(v*2)+subscribe | 850.34 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+scan(10, std::plus)+subscribe | 967.58 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
| immediate_just+flat_map(immediate_just(v*2))+subscribe | 2250.14 ns | 140.38 ns | 140.42 ns | 1.00 | 136.99 ns |
| immediate_just+buffer(2)+subscribe | 1521.48 ns | 13.59 ns | 13.58 ns | 1.00 | 13.90 ns |
| immediate_just+window(2)+subscribe + subscsribe inner | 2417.06 ns | 909.56 ns | 944.11 ns | 0.96 | 919.84 ns |
Conditional Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take_while(false)+subscribe | 833.36 ns | - | - | 0.00 | - |
| immediate_just+take_while(true)+subscribe | 839.00 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Utility Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(1)+subscribe_on(immediate)+subscribe | 2008.90 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Combining Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe | 3291.43 ns | 160.36 ns | 161.06 ns | 1.00 | 156.28 ns |
| immediate_just(1) + merge_with(immediate_just(2)) + subscribe | 3772.99 ns | 142.27 ns | 142.24 ns | 1.00 | 140.88 ns |
| immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe | - | 140.86 ns | 140.85 ns | 1.00 | 139.89 ns |
| immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe | 3325.45 ns | 375.20 ns | 377.50 ns | 0.99 | 378.88 ns |
| immediate_just(1) + zip(immediate_just(2)) + subscribe | 2238.44 ns | 195.76 ns | 194.72 ns | 1.01 | 194.29 ns |
| immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe | 3237.26 ns | 221.76 ns | 221.41 ns | 1.00 | 225.40 ns |
Subjects
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| publish_subject with 1 observer - on_next | 51.84 ns | 17.70 ns | 17.49 ns | 1.01 | 18.53 ns |
| subscribe 100 observers to publish_subject | 210645.50 ns | 16219.38 ns | 16169.02 ns | 1.00 | 16233.40 ns |
| 100 on_next to 100 observers to publish_subject | 43006.67 ns | 23498.60 ns | 23529.20 ns | 1.00 | 20633.73 ns |
Scenarios
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| basic sample | 1292.98 ns | 11.12 ns | 11.11 ns | 1.00 | 20.39 ns |
| basic sample with immediate scheduler | 1312.08 ns | 5.86 ns | 5.86 ns | 1.00 | 6.79 ns |
| mix operators with disposables and without disposables | 6506.21 ns | 1185.43 ns | 1163.51 ns | 1.02 | 1489.17 ns |
| single disposable and looooooong indentity chain | 27962.81 ns | 1233.21 ns | 1246.28 ns | 0.99 | 4595.01 ns |
Aggregating Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+reduce(10, std::plus)+subscribe | 999.30 ns | 0.31 ns | 0.31 ns | 1.00 | 0.31 ns |
Error Handling Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe | 2223.44 ns | 1181.17 ns | 1160.81 ns | 1.02 | 1170.81 ns |
| create(on_error())+retry(1)+subscribe | 674.77 ns | 146.42 ns | 139.35 ns | 1.05 | 147.03 ns |
ci-windows
General
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| Subscribe empty callbacks to empty observable | 562.48 ns | 2.16 ns | 1.85 ns | 1.17 | 2.16 ns |
| Subscribe empty callbacks to empty observable via pipe operator | 582.81 ns | 2.16 ns | 1.85 ns | 1.17 | 2.16 ns |
Sources
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| from array of 1 - create + subscribe + immediate | 1162.21 ns | 5.86 ns | 5.86 ns | 1.00 | 5.36 ns |
| from array of 1 - create + subscribe + current_thread | 1417.48 ns | 15.74 ns | 15.75 ns | 1.00 | 16.27 ns |
| concat_as_source of just(1 immediate) create + subscribe | 3739.61 ns | 165.17 ns | 164.78 ns | 1.00 | 175.40 ns |
| defer from array of 1 - defer + create + subscribe + immediate | 1170.99 ns | 5.55 ns | 5.55 ns | 1.00 | 5.24 ns |
| interval - interval + take(3) + subscribe + immediate | 3650.36 ns | 139.64 ns | 141.04 ns | 0.99 | 141.82 ns |
| interval - interval + take(3) + subscribe + current_thread | 5041.99 ns | 60.05 ns | 62.51 ns | 0.96 | 62.96 ns |
| from array of 1 - create + as_blocking + subscribe + new_thread | 120814.29 ns | 112866.67 ns | 112854.55 ns | 1.00 | 110537.50 ns |
| from array of 1000 - create + as_blocking + subscribe + new_thread | 129987.50 ns | 129388.89 ns | 132811.11 ns | 0.97 | 128350.00 ns |
| concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe | 5305.96 ns | 200.82 ns | 200.53 ns | 1.00 | 202.53 ns |
Filtering Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take(1)+subscribe | 1811.37 ns | 19.42 ns | 19.73 ns | 0.98 | 20.36 ns |
| immediate_just+filter(true)+subscribe | 1590.82 ns | 18.50 ns | 18.81 ns | 0.98 | 21.41 ns |
| immediate_just(1,2)+skip(1)+subscribe | 1706.97 ns | 17.90 ns | 18.50 ns | 0.97 | 20.38 ns |
| immediate_just(1,1,2)+distinct_until_changed()+subscribe | 1353.47 ns | 20.68 ns | 23.46 ns | 0.88 | 24.99 ns |
| immediate_just(1,2)+first()+subscribe | 2368.06 ns | 18.20 ns | 17.28 ns | 1.05 | 18.51 ns |
| immediate_just(1,2)+last()+subscribe | 1445.95 ns | 19.14 ns | 18.51 ns | 1.03 | 22.23 ns |
| immediate_just+take_last(1)+subscribe | 2013.18 ns | 63.84 ns | 64.71 ns | 0.99 | 66.48 ns |
| immediate_just(1,2,3)+element_at(1)+subscribe | 1618.61 ns | 20.97 ns | 21.91 ns | 0.96 | 22.85 ns |
Schedulers
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate scheduler create worker + schedule | 532.65 ns | 6.13 ns | 4.94 ns | 1.24 | 4.32 ns |
| current_thread scheduler create worker + schedule | 656.67 ns | 11.65 ns | 11.18 ns | 1.04 | 11.12 ns |
| current_thread scheduler create worker + schedule + recursive schedule | 1085.83 ns | 100.26 ns | 100.56 ns | 1.00 | 98.55 ns |
Transforming Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+map(v*2)+subscribe | 1310.78 ns | 18.80 ns | 18.81 ns | 1.00 | 21.29 ns |
| immediate_just+scan(10, std::plus)+subscribe | 1423.86 ns | 20.98 ns | 20.98 ns | 1.00 | 19.36 ns |
| immediate_just+flat_map(immediate_just(v*2))+subscribe | 3810.16 ns | 183.85 ns | 181.42 ns | 1.01 | 220.62 ns |
| immediate_just+buffer(2)+subscribe | 2295.40 ns | 63.46 ns | 64.05 ns | 0.99 | 69.31 ns |
| immediate_just+window(2)+subscribe + subscsribe inner | 4004.96 ns | 1286.57 ns | 1292.80 ns | 1.00 | 1294.16 ns |
Conditional Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+take_while(false)+subscribe | 1303.98 ns | 17.57 ns | 17.58 ns | 1.00 | 19.13 ns |
| immediate_just+take_while(true)+subscribe | 1302.35 ns | 18.51 ns | 18.81 ns | 0.98 | 20.98 ns |
Utility Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(1)+subscribe_on(immediate)+subscribe | 3130.28 ns | 11.10 ns | 11.11 ns | 1.00 | 11.10 ns |
Combining Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe | 5176.74 ns | 200.67 ns | 200.49 ns | 1.00 | 226.44 ns |
| immediate_just(1) + merge_with(immediate_just(2)) + subscribe | 5730.00 ns | 185.22 ns | 185.70 ns | 1.00 | 193.48 ns |
| immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe | - | 191.62 ns | 188.17 ns | 1.02 | 198.10 ns |
| immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe | 6135.48 ns | 435.09 ns | 434.23 ns | 1.00 | 452.50 ns |
| immediate_just(1) + zip(immediate_just(2)) + subscribe | 3862.09 ns | 517.60 ns | 520.39 ns | 0.99 | 521.06 ns |
| immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe | 4865.38 ns | 326.69 ns | 326.12 ns | 1.00 | 340.57 ns |
Subjects
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| publish_subject with 1 observer - on_next | 36.33 ns | 19.81 ns | 19.87 ns | 1.00 | 20.61 ns |
| subscribe 100 observers to publish_subject | 252660.00 ns | 26713.16 ns | 27747.50 ns | 0.96 | 26823.08 ns |
| 100 on_next to 100 observers to publish_subject | 55518.18 ns | 32658.06 ns | 32656.25 ns | 1.00 | 38813.33 ns |
Scenarios
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| basic sample | 1888.91 ns | 97.44 ns | 96.81 ns | 1.01 | 113.56 ns |
| basic sample with immediate scheduler | 1890.57 ns | 67.17 ns | 69.02 ns | 0.97 | 83.20 ns |
| mix operators with disposables and without disposables | 9904.13 ns | 1933.79 ns | 1903.65 ns | 1.02 | 2690.70 ns |
| single disposable and looooooong indentity chain | 26861.54 ns | 1689.35 ns | 1744.43 ns | 0.97 | 6453.46 ns |
Aggregating Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| immediate_just+reduce(10, std::plus)+subscribe | 1428.23 ns | 19.12 ns | 19.43 ns | 0.98 | 20.09 ns |
Error Handling Operators
| name | rxcpp | rpp | prev rpp | ratio | rpp no optimization |
|---|---|---|---|---|---|
| create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe | 1906.98 ns | 348.15 ns | 352.38 ns | 0.99 | 364.69 ns |
| create(on_error())+retry(1)+subscribe | 1498.71 ns | 139.63 ns | 141.50 ns | 0.99 | 140.39 ns |
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## v2 #692 +/- ##
=======================================
Coverage 98.61% 98.61%
=======================================
Files 156 156
Lines 9786 9786
=======================================
Hits 9650 9650
Misses 136 136 ☔ View full report in Codecov by Sentry. |



Summary by CodeRabbit
New Features
Bug Fixes